#!/bin/bash

function s1_read_last_two_bytes_of_a_mbr_backup_file(){
	MBR_FILE=$1
	LAST_TWO_BYTES=$(tail -c 2   "$MBR_FILE" | od -A n -t x1 | tr -d ' \n')
	if [ "$LAST_TWO_BYTES" == "55aa" ]; then
	echo "YES"
	else 
	echo "NO"
	fi
}

function s2_read_mbr_partition_table_info(){
	local filename="$1"
	for i in {0..3};do
	offset=$((446+i*16))
	start_sector=$(dd if="$filename" bs=1 skip=$((offset+8)) count=4 2>/dev/null | od -t u4 -An |tr -d ' \n')
	if ! [[$start_sector=~^[0-9]+$]]; then
	continue
	fi

	if ["$start_sector" -eq 0 ]; then
	continue
	fi
	
	size_sector=$(dd if="$filename" bs=1 skip=$((offset+12)) count=4 2>dev/null | od -t u4 -An |tr -d '\n')
	end_sector=$((start_sector+size_sector-1))
	echo "$start_sector $end_sector"
	done
}

function s3_parse_partition_info(){
	read fdisk_output
	disk_size_bytes=$(echo "$fdisk_output" | grep "Disk /dev/vda:" | awk     '{print $5}')
	disk_size_sector=$(echo "$fdisk_output" | grep "Disk /dev/vda:" | awk     '{print $7}')
	physical_sector_size=$(echo "$fdisk_output" | grep "Sector size" | awk  '{print $4 }')
	first_partition_start_sector=$(echo "$fdisk_output" | grep "/dev/vda1" | awk '{print $3 }')
	first_partition_end_sector=$(echo "$fdisk_output" | grep "/dev/vda1" | awk '{print $4 }')
	first_partition_type=$(echo "$fdisk_output" | grep "/dev/vda1" | awk '{print $8 }')
	echo "disk size in bytes: $disk_size_bytes"
	echo "disk size in sector: $disk_size_sector"
	echo "physical sector size in bytes: $physical_sector_size"
	echo "first partition start sector id: $first_partition_start_sector"
	echo "first partition end sector id: $first_partition_end_sector"
	echo "first partition type: $first_partition_type"
}

function s4_run_passwd_as_plain_user_and_get_status(){
	oversleeping_path=$(which oversleeping)
	sudo chown root "$oversleeping_path"
	sudo chmod 755  "$oversleeping_path"
	sudo chmod u+s  "$oversleeping_path"

	$oversleeping_path &
	ps -o uid,euid,ruid -C 'oversleeping' | awk 'NR>1 {print "$1" "$2" "$3"}'
}

function s5_add_a_scheduled_task(){
	crontab -l | { cat; echo "8/5 * * * * date + %Y%m%d_%H%M%S' >> $HOME/test_crontab"; } | crontab -
}
